//*** Guidance generated code ***//
using System;
using System.Collections.Generic;
using System.Diagnostics.Contracts;
using System.Linq;

using ProjectBase.Core;

namespace Survey.Entity.Services
{
    /// <summary>
    ///     Filters for Article.
    ///     Contains properties filled on View
    ///     and used as Criteria on Dao - powerful feature
    /// </summary>
    [Serializable]
    public class ArticleFilter : BaseFilter<int>
    {
        /// <summary>
        ///     This allows to look for exact Code using 'Equal' instead of 'Like'.
        ///     It could be useful for exact code search (GetByCode)
        /// </summary>
        public virtual string CodeExact { get; set; }

        public virtual string Code { get; set; }

        public virtual string Title { get; set; }
        public virtual string Description { get; set; }
        public virtual string Text { get; set; }

        public virtual ArticleCategory ArticleCategory { get; set; }
        public virtual ArticleGroup ArticleGroup { get; set; }

        public virtual bool? IsVisible { get; set; }

        public virtual DateTime? CreatedFrom { get; set; }
        public virtual DateTime? CreatedTo { get; set; }

        public virtual DateTime? ReleaseFrom { get; set; }
        public virtual DateTime? ReleaseTo { get; set; }

        public virtual DateTime? UpdatedFrom { get; set; }
        public virtual DateTime? UpdatedTo { get; set; }

        public virtual ArticleCategory ArticleCategoryNot { get; set; }
        public virtual ArticleGroup ArticleGroupNot { get; set; }
    }
}